"""
挑战介绍
实现一个算法求两个数字的和，但不能在代码中使用 + 号和 - 号。

挑战内容
本次挑战中，你需要在 sum.py 文件中补充类 Solution 的空缺部分。

Solution 中的 sum_two 方法用于求两个数字的和。
sum_two 函数的参数 a 和 b 用于指定传入的两个数字。
sum_two 函数需要返回一个数字。
如果传入的 a 和 b 中有 None，需要使用 raise 语句显示 TypeError。
"""
class Solution(object):
    
    def sum_two(self, a, b):
        ### 补充代码 ###
        if a==None or b==None:
            raise TypeError
        while b!=0:
            x = a^b
            y = (a&b) << 1
            a = x
            b = y
        return a